//
//  TableViewCustomView.h
//  zhijianshejian
//
//  Created by admin on 16/5/18.
//  Copyright © 2016年 haoniu-duhuan. All rights reserved.
//

#import <UIKit/UIKit.h>

@class TableViewCustomView;

//代理
@protocol TableViewCustomViewDelegate <NSObject>

-(UITableViewCell *)tableViewCustomView:(TableViewCustomView *)tableViewCustomView cellForRowAtIndexPath:(NSIndexPath *)index;
-(void)tableViewCustomView:(TableViewCustomView *)tableViewCustomView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

@optional

-(NSInteger)numberOfSectionsInTableViewCustomView:(TableViewCustomView *)tableViewCustomView;
-(CGFloat)tableViewCustomView:(TableViewCustomView *)tableViewCustomView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
-(NSInteger)tableViewCustomView:(TableViewCustomView *)tableViewCustomView numberOfRowsInSection:(NSInteger)section;

@end

typedef enum {
    ENUM_SHowCustonViewCenter = 0,//中间位置显示
    ENUM_SHowCustonViewFooter = 1,//底部位置显示
    ENUM_SHowCustonViewTop = 2//顶部位置显示
} ENUM_ShowCustomView;
typedef enum {
    ENUM_SHowCustonSelectRedio = 0,//单选
    ENUM_SHowCustonSelectCheckBox = 1//多选
} ENUM_ShowCustomViewSelect;

@interface TableViewCustomView : UIView<UITableViewDataSource,UITableViewDelegate>

@property (nonatomic,retain) UIView * headView;
@property (nonatomic,retain) UIView * contentView;//内容
@property int contentViewHeight;//内容
@property (nonatomic,retain) UITableView * tableView;
@property (nonatomic,retain) NSMutableArray * dataSource;

@property (nonatomic,retain) NSString * viewTitle;//显示标题
@property BOOL isShown; //是否显示
@property BOOL startMoving;//是否可以移动
@property int startPointY;//开始移动位置
@property ENUM_ShowCustomView ShowEnum;//显示位置
@property ENUM_ShowCustomViewSelect selectEnum;//选择类型



@property (nonatomic,retain) id<TableViewCustomViewDelegate> delegate;

+(instancetype) shareInstance;
/**
 *@brief 生成视图
 *
 *@param title 显示标题(TopView不显示标题)
 *@param dataSource 数据源
 *@param position 视图显示的位置ENUM_ShowCustomView
 *@param select 视图是单选或者多选ENUM_ShowCustomViewSelect
 *@param delegate 代理
 *
 *@return 返回视图对象
 */
+(instancetype) initWithTitle:(NSString *)title withDataSource:(NSArray *)dataSource withPosition:(ENUM_ShowCustomView)position withSelect:(ENUM_ShowCustomViewSelect)select withDelegate:(id)delegate;

-(void)showByAnimaDefault;

-(void)hideByAnimaDefault;
@end
